package hcn.api.service.api.mch;

import ctd.controller.exception.ControllerException;
import ctd.util.annotation.RpcService;
import hcn.mch.request.*;
import hcn.mch.response.*;

/**
 * @program: Myproject
 * @description: 母子手册电子书
 * @author: zangsf
 * @create: 2022-07-21 09:38
 **/
public interface HandbookEbookService {

    /* *
     * @description :基本信息查询
     * @author      :zangsf
     * @date        :2022-07-21 13:48
     * @param       :[qo]
     * @return      :hcn.mch.response.QueryBasicInfoVO
     */
    @RpcService
    QueryBasicInfoVO queryBasicInformation(QueryBasicInfoQO qo) throws ControllerException;

    /* *
     * @description :查询新生儿早期健康检查记录
     * @author      :zangsf
     * @date        :2022-07-21 13:49
     * @param       :[qo]
     * @return      :hcn.mch.response.FindNewBornCheckRecordListVO
     */
    @RpcService
    FindNewBornCheckRecordListVO findNewBornCheckRecordList(FindNewBornCheckRecordListQO qo) throws ControllerException;

    /* *
     * @description :查询儿童监看检查记录
     * @author      :zangsf
     * @date        :2022-07-21 13:50
     * @param       :[qo]
     * @return      :hcn.mch.response.FindChildHealthRecordListVO
     */
    @RpcService
    FindChildHealthRecordListVO findChildHealthRecordList(FindChildHealthRecordListQO qo) throws ControllerException;


    /**
     * 孕前优生健康检查记录
     * @param req
     * @return
     * @throws ControllerException
     */
    @RpcService
    EugenicHealthCheckResponse queryEugenicHealthCheckList(String localOrgId,EugenicHealthCheckRequest req) throws ControllerException;

    /**
     * 孕妇1-10月检查记录
     * @param req
     * @return
     * @throws ControllerException
     */
    @RpcService
    PregnantExamRecordListVO queryPregnantExamRecordList(PregnantExamRecordListReq req) throws ControllerException;


    /**
     * 产后访视医生记录
     * @param localOrgId
     * @param req
     * @return
     * @throws ControllerException
     */
    @RpcService
    PostpartumVisitRecordResponse queryPostpartumVisitRecord(String localOrgId,PostpartumVisitRecordRequest req) throws ControllerException;


    /**
     * 产后42天医生检查记录查询
     * @param localOrgId
     * @param req
     * @return
     * @throws ControllerException
     */
    @RpcService
    PostpartumDayVisitResponse queryPostpartumDayVisitRecord(String localOrgId,PostpartumDayVisitRequest req) throws ControllerException;

    /**
     * 分娩情况医生记录
     * @param localOrgId
     * @param req
     * @return
     * @throws ControllerException
     */
    @RpcService
    DeliverySituationRecordResponse queryDeliverySituationRecord(String localOrgId,DeliverySituationRecordRequest req) throws ControllerException;
    /**
     * 婚前医学检查记录查询
     * @param localOrgId
     * @param req
     * @return
     * @throws ControllerException
     */
    @RpcService
    PremaritalExaminationQo getPremaritalExaminationByIDCard(String localOrgId,DeliverySituationRecordRequest req) throws ControllerException;
}
